package org.microframework.base.core.web.page;

import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 分页查询参数
 *
 * @param <T> 查询条件类型
 * @author zs
 * @version 1.0.0
 * @date 2024-05-21
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class PageQuery<T> extends AbstractPageRequest implements Serializable {
	private static final long serialVersionUID = 1L;
	
	/**
	 * 排序字段
	 */
	private String orderBy;
	
	/**
	 * 排序方向
	 */
	private String orderDirection;
	
	/**
	 * 查询条件
	 */
	private T query;
	
	/**
	 * 获取排序字段
	 */
	public String getOrderBy() {
		return orderBy;
	}
	
	/**
	 * 设置排序字段
	 */
	public void setOrderBy(String orderBy) {
		this.orderBy = orderBy;
	}
	
	/**
	 * 获取排序方向
	 */
	public String getOrderDirection() {
		return orderDirection;
	}
	
	/**
	 * 设置排序方向
	 */
	public void setOrderDirection(String orderDirection) {
		this.orderDirection = orderDirection;
	}
	
	/**
	 * 获取查询条件
	 */
	public T getQuery() {
		return query;
	}
	
	/**
	 * 设置查询条件
	 */
	public void setQuery(T query) {
		this.query = query;
	}
	
	/**
	 * 获取当前页码
	 */
	@Override
	public int getPageNumber() {
		return super.getPageNumber();
	}
	
	/**
	 * 获取每页记录数
	 */
	@Override
	public int getPageSize() {
		return super.getPageSize();
	}
}
